/*
 * FastDataApproxImpl.h
 *
 *  Created on: Jan 8, 2013
 *      Author: fs
 */

#ifndef FASTDATAAPPROXIMPL_H_
#define FASTDATAAPPROXIMPL_H_

#include "IFastDataApprox.h"
#include "DataTypes.h"
#include <vector>

using namespace std;


class FastDataApproxImpl : public IFastDataApprox
{
public:
	FastDataApproxImpl(data* dataItems);
	virtual ~FastDataApproxImpl();

	HRESULT WINAPI GetBuf(LPAPPROXPOINT points, floattype step, int len, int *filled);
	VIRTUAL HRESULT WINAPI GetPrecedingPoint(floattype x, int *index);
	HRESULT WINAPI Count(int *cnt);
	HRESULT WINAPI Clear(int start, int stop);
	HRESULT WINAPI AddBuf(LPAPPROXPOINT points, int len, int *added);
	HRESULT WINAPI EnumBuf(int *index, LPAPPROXPOINT points, int len, int *filled);

private:

	data* dataItems;

};

#endif /* FASTDATAAPPROXIMPL_H_ */
